This invention relates to serial communications, and more particularly, to configurable serial communications protocols and tools for designing circuits that are compliant with such protocols.
Serial communications formats are often used in modern electronics systems. Serial communications can be faster than parallel communications, use fewer pins, and, particularly when differential signaling schemes are used, can have higher noise immunity.
High-speed serial communications protocols have historically been designed to ensure interoperability at a high level. This interoperability allows protocol-compliant equipment from various different manufacturers to communicate successfully. Protocols of this type have been fairly rigid and have many required functions.
Some high-level functions in these protocols may be optional. However, even if a function is optional, it may still be necessary to commit resources for the implementation of that function, regardless of whether the function is actually used in practice. In some situations, a function may be omitted, but there is a resulting cost in the form of required start-up negotiations. During these negotiations, both ends of a protocol-compliant serial communications link must communicate to determine which features are supported by the equipment at either end.
Most standard protocols follow some version of the International Standard Organization's (ISO) Open System Interconnect (OSI) reference model in which communications services are provided in layers—i.e., the physical layer, the data link layer, the network layer, the transport layer, the session layer, the presentation layer, and the application layer. Each layer has a set of services that it provides to the layer above it. A typical protocol may specify functionality across a number of OSI layers.
Users that desire a light protocol for communicating across a single data link will not use any layer higher than the data link layer. Reliance on traditional protocols that have optional functions at layers above the data link layer is therefore undesirable. Each of the higher-layer optional features in a traditional serial communication protocol has a potential impact in terms of resource consumption and degradation of performance and latency. Not all situations require these higher-layer features or require them in varying combinations, so it is not desirable to force designers to use them and to accept the overhead they entail.